// 导入接口
import { addTagAPI, getTagAPI, delTagAPI } from '@/API/api'
// 向外默认暴露一个 tag 小仓库对象
export default {
  // 开启命名空间
  namespaced: true,
  // 状态，存放共享数据的地方
  state: () => ({
    // 标签详情
    tag: {}
  }),
  // mutations 唯一能修改state中公共数据的地方
  mutations: {
    // 修改 tagList
    setTagList(state, tag) {
      state.tag = tag
    }
  },
  // actions 处理异步任务的地方
  actions: {
    // 添加 标签
    async addTag({ commit }, params) {
      const { data: res } = await addTagAPI(params)
      // console.log(res)
      if (res.status !== 0) return Promise.reject(new Error(res.msg))
      return 'success'
    },
    // 获取标签
    async getTag({ commit }, params) {
      const { data: res } = await getTagAPI(params)
      // console.log(res)
      if (res.status !== 0) return Promise.reject(new Error(res.msg))
      commit('setTagList', res)
    },
    // 删除标签
    async deleteTag({ commit }, params) {
      const { data: res } = await delTagAPI(params)
      // console.log(res)
      if (res.status !== 0) return Promise.reject(new Error(res.msg))
    }
  },
  // getters 对 state 中的公共数据进行包装的地方，不修改state中的数据
  getters: {}
}
